| Conditions | 1 |
| Paths | 3 |
| Total Lines | 25 |
| Lines | 0 |
| Ratio | 0 % |
| Tests | 11 |
| CRAP Score | 1.0005 |
| Changes | 1 | ||
| Bugs | 0 | Features | 0 |
| 1 | 1 | var jwt = require('jsonwebtoken'); |
|
| 3 | 1 | module.exports = function(secret) { |
|
| 4 | 1 | return function(req, res, next) { |
|
| 5 | let token; |
||
| 6 | 3 | if (req.headers.authorization) { |
|
| 7 | token = req.headers['authorization'].split(' ')[1]; |
||
| 8 | } else { |
||
| 9 | 3 | token = req.body.token || req.query.token || req.headers['x-access-token']; |
|
| 10 | } |
||
| 11 | 3 | if (token) { |
|
| 12 | 2 | jwt.verify(token, secret, function(err, decoded) { |
|
| 13 | 2 | if (err) { |
|
| 14 | 1 | return res.status(403).send({ success: false, message: 'Failed to authenticate token.' }); |
|
| 15 | } else { |
||
| 16 | 1 | req.decoded = decoded; |
|
| 17 | 1 | next(); |
|
|
|
|||
| 18 | } |
||
| 19 | }); |
||
| 20 | } else { |
||
| 21 | 1 | return res.status(403).send({ |
|
| 22 | success: false, |
||
| 23 | message: 'No token provided.' |
||
| 24 | }); |
||
| 25 | } |
||
| 26 | } |
||
| 27 | } |
||
| 28 |